// gulp构建过程的核心原理 读取-转换-写入

const fs = require('fs')
const { Transform } = require('stream')

exports.default = () => {
    // 文件读取流
    const read = fs.createReadStream('normalize.css')
    // 文件写入流
    const write = fs.createWriteStream('normalize.min.css')
    // 文件转换流
    const transform = new Transform({
        transform: (chunk, encoding, callback) => {
            // 核心转换过程
            // chunk 读取流中读取到的内容 (Buffer)
            const input = chunk.toString() // 字节码转换为字符串
            const output = input.replace(/\s+/g, '')
                .replace(/\/\*.+?\*\//g, '')
            callback(null, output) // callback是错误优先的函数 第一个参数是错误
        }
    })

    // 把读取出的文件流导入写入文件流
    read.pipe(transform) // 转换
        .pipe(write)     // 写入

    return read
}



